<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
  <style>
    *{
      margin: 0;
      padding: 0;
      list-style: none;
    }
    div{
      position: relative;
      width: 1200px;
      height: 400px;
      margin: 50px auto;
      border: 1px solid red;
      overflow: hidden;
    }
    div li{
      width: 1200px;
      height: 400px;
      position: absolute;
    }
  </style>
</head>
<body>
  <div id="box">
    <ul>
      <li></li>
      <li></li>
      <li></li>
      <li></li>
      <li></li>
    </ul>
  </div>
  <script src="../../jquery-1.12.4.min.js"></script>
  <script>
  var picArr = ['images/1.jpg', 'images/4.jpg', 'images/3.jpg', 'images/5.jpg', 'images/2.jpg'];
  //1 设置初始展示效果
  var $lis = $('li');
  $lis.each(function(i,element){
    //2 设置样式(背景图 left值)
    $(element).css({
      backgroundImage:'url('+picArr[i]+')',
      left:i*240
    });
  });
  //3 布标进入li时的操作
  $lis.mouseenter(function(){
    // 4 由于每个li的运动位置不同，需要进行遍历后的分别设置
    var suoYin = $(this).index();
    $lis.each(function(i,element){
      // 根据当前操作的li的索引进行分组，并且设置动画
      if(i <= suoYin){
        //第一组元素的运动位置为 i*100
        $(element).stop().animate({left : i * 100});
      }else{
        $(element).stop().animate({left : i * 100 + 700});
      };
    });
  });
  //5 设置大盒子离开的操作
  $('#box').mouseleave(function(){
    //遍历素有的li,设置不同的初始left值
    $lis.each(function(i,element){
      $(element).stop().animate({left: i * 240});
    });
  });
  </script>
</body>
</html>